.. _cmmIxArc3PStart: cmmIxArc3PStart =========================== --------------------------- SYNOPSIS ````````` .. code-block:: none VT_I4 cmmIxArc3PStart( [in] VT_I4 MapIndex, [in] VT_R8 P2X, [in] VT_R8 P2Y, [in] VT_R8 P3X, [in] VT_R8 P3Y, [in] VT_R8 EndAngle ) DESCRIPTION ````````````` - 본 함수는 원호의 중심점 및 종점 좌표를 사용하는 cmmIxArcPStart(상대 좌표) 또는 cmmIxArcPToStart (절대 좌표) 함수와는 달리 현재 좌표(1 차)를 포함해서 2 차 및 3 차 좌표의 총 3 개의 (X, Y) 순서쌍 좌표를 사용해서 원호 보간을 수행합니다. 결과적으로 세 점을 지나게 되므로 중심점은 자동으로 결정됩니다. 또한 함수 이름이 ‘Start’ 로 끝나므로 함수 내부에서 이송 완료시까지 기다리지 않고 이송 작업만 시작시킨 뒤 바로 반환 됩니다. 따라서 cmmIxWaitDone 함수와 함께 사용하셔야 이송 완료 체크를 하실 수 있습니다. PARAMETER ``````````` - MapIndex : 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다. \ - VT_R8P2X : 원호가 지나는 2 번째 점의 X 좌표 입니다. \ - VT_R8P2Y : 원호가 지나는 2 번째 점의 Y 좌표 입니다. \ - VT_R8P3X : 원호가 지나는 3 번째 점의 X 좌표 입니다. \ - VT_R8P3Y : 원호가 지나는 3 번째 점의 Y 좌표 입니다 \ - EndAngle : 중심점과 출발점을 잇는 선분이 중심점과 종점을 잇는 선분과 이루는 각도를 의미 합니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0도, 3번째 점에서 보간 이송 완료 하도록 설정. 이 경우 종점도 3번째 점이 됩니다. "| 0 도 초과 360도 이하", " | 현재 좌표(1 번째), 2 번째 및 3 번째를 지나 중심점으로부터 해당 각도 만큼 | 원호 보간 이송이 수행됩니다. | 단 각도가 2 번째 또는 3 번째 점을 지나기에 모자라는 경우는 해당 각도 | 까지만 그려지고 2 번째 및 3 번째 점은 지나지 않게 됩니다." RETURN VALUE ````````````` +--------------+-----------+ | Value | Meaning | +==============+===========+ | 음수 | 수행 실패 | +--------------+-----------+ | cmERR_NONE | 수행 성공 | +--------------+-----------+ REFERENCE ``````````` .. note:: 이 함수 사용 시 현재 좌표를 포함한 3 개의 점이 거의 직선에 가깝게 설정되는 경우는 사실상 지름이 무한대 거나 상당히 큰 원을 그려야 하는 문제가 발생하며, 이 경우는 함수 수행은 되고 반환값이 cmERR_NONE 이 되더라도 실제로는 제대로 이송이 안되고 원호 보간 이송에 실패할 수 있음에 유의해야 합니다. EXAMPLE `````````` - 예제는 cmmIxArc3P를 참고해주세요. .. seealso:: :ref:`cmmIxArcP`, :ref:`cmmIxArcPTo`, :ref:`cmmIxArcPStart`, :ref:`cmmOxArcPToStart`, :ref:`cmmIxArc3P`